package com.ygqh.baby.service.linkstars.model;

import java.math.BigDecimal;

import com.alibaba.fastjson.annotation.JSONField;

public class Goods {
	/**
	 * 商品在商城的 ID
	 */
	@JSONField(name = "goods_id")
	private Long goodsId;
	@JSONField(name = "goods_name")
	private String goodsName;
	/**
	 * 单个商品的价格。 单位为货币的主货币单位，例如元、美元、铢。保留小数点后 2 位（即分位），厘位需四舍五入。
	 * 不等同于商品原价格，此价格应为除去减免、代金券、快递费等 优惠金额后的可计算佣金的部分，并予以平摊到每件商品之上。 例如：A 商品 50 元、B
	 * 商品 30 元，订单总额 80 元，优惠券支付 10 元，实际支付 70 元。则： A 商品真实单价为 50*(70/80) = 43.75 B
	 * 商品真实单价为 30*(70/80) = 26.25 请注意，不论该商品购买数量是多少，其真实单价的计算方法都 是一样的。 联盟计算佣金时 ，首先
	 * 根 据 商 品 类目标识 （goods_commission_type）在联盟系统中查询该商品的佣金比例 （commission
	 * rate）。之后，将商品结算价格单价（本字段）、商品购买数量（goods_count）、佣金比例相乘（保留 2 位小数，
	 * 多余小数将四舍五入）作为该商品的佣金。最后，将各个商品的 佣金相加作为订单的佣金金额。
	 */
	@JSONField(name = "goods_price")
	private BigDecimal goodsPrice;
	/**
	 * 本件商品的佣金类目。 根据计划设置填写（见广告主《上线申请书》）。 如果采用固定佣金制，此处固定填 1。 （关于佣金类目的说明请参考 FAQ）
	 */
	@JSONField(name = "goods_commission_type")
	private Integer goodsCommissionType;
	/**
	 * 该商品的佣金比例。小数。0.05 代表 5%。
	 */
	@JSONField(name = "goods_commission_rate")
	private BigDecimal goodsCommissionRate;
	/**
	 * 商品数量。至少为 1。
	 */
	@JSONField(name = "goods_count")
	private Integer goodsCount;
	/**
	 * 该商品总佣金（不是单件的佣金）。 即该商品将来或已经可以得到的佣金的金额。 单位为货币的主货币单位，例如元、美元、铢。保留小数点后 2
	 * 位（即分位），厘位需四舍五入。
	 */
	@JSONField(name = "goods_commission")
	private BigDecimal goodsCommission;

	public Goods() {
		super();
	}

	public Goods(Long goodsId, String goodsName, BigDecimal goodsPrice, Integer goodsCommissionType, BigDecimal goodsCommissionRate, Integer goodsCount,
			BigDecimal goodsCommission) {
		super();
		this.goodsId = goodsId;
		this.goodsName = goodsName;
		this.goodsPrice = goodsPrice;
		this.goodsCommissionType = goodsCommissionType;
		this.goodsCommissionRate = goodsCommissionRate;
		this.goodsCount = goodsCount;
		this.goodsCommission = goodsCommission;
	}

	public Long getGoodsId() {
		return goodsId;
	}

	public void setGoodsId(Long goodsId) {
		this.goodsId = goodsId;
	}

	public String getGoodsName() {
		return goodsName;
	}

	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}

	public BigDecimal getGoodsPrice() {
		return goodsPrice;
	}

	public void setGoodsPrice(BigDecimal goodsPrice) {
		this.goodsPrice = goodsPrice;
	}

	public Integer getGoodsCommissionType() {
		return goodsCommissionType;
	}

	public void setGoodsCommissionType(Integer goodsCommissionType) {
		this.goodsCommissionType = goodsCommissionType;
	}

	public BigDecimal getGoodsCommissionRate() {
		return goodsCommissionRate;
	}

	public void setGoodsCommissionRate(BigDecimal goodsCommissionRate) {
		this.goodsCommissionRate = goodsCommissionRate;
	}

	public Integer getGoodsCount() {
		return goodsCount;
	}

	public void setGoodsCount(Integer goodsCount) {
		this.goodsCount = goodsCount;
	}

	public BigDecimal getGoodsCommission() {
		return goodsCommission;
	}

	public void setGoodsCommission(BigDecimal goodsCommission) {
		this.goodsCommission = goodsCommission;
	}

	@Override
	public String toString() {
		return "Goods [goodsId=" + goodsId + ", goodsName=" + goodsName + ", goodsPrice=" + goodsPrice + ", goodsCommissionType=" + goodsCommissionType
				+ ", goodsCommissionRate=" + goodsCommissionRate + ", goodsCount=" + goodsCount + ", goodsCommission=" + goodsCommission + "]";
	}

}
